/*
 使用拷贝相关函数
 */
import {onMounted, onUpdated} from 'vue'
import {copyText} from '@/utils/format'

export function useCopyCode() {
	function copyCodeBlock() {
		const codeBlockWrapper = document.querySelectorAll('.code-block-wrapper')
		codeBlockWrapper.forEach((wrapper) => {
			const copyBtn = wrapper.querySelector('.code-block-header__copy')
			const codeBlock = wrapper.querySelector('.code-block-body')
			if (copyBtn && codeBlock) {
				copyBtn.addEventListener('click', () => {
					if (navigator.clipboard?.writeText) {
						navigator.clipboard.writeText(codeBlock.textContent ?? '')
					} else {
						copyText({
							text: codeBlock.textContent ?? '',
							origin: true
						})
					}
				})
			}
		})
	}

	onMounted(() => copyCodeBlock())

	onUpdated(() => copyCodeBlock())
}
